[fix](fe) Fix show data all result row width#65215
Conversation
|
Thank you for your contribution to Apache Doris. Please clearly describe your PR:
|
|
run buildall |
TPC-H: Total hot run time: 29645 ms |
TPC-DS: Total hot run time: 174259 ms |
ClickBench: Total hot run time: 25.41 s |
Issue Number: close #xxx Related PR: apache#62058 Problem Summary: SHOW DATA ALL returns detailed database data with 9 metadata columns after LocalBinlogSize was added, but the Quota and Left summary rows still contained only 8 values. The FE MySQL protocol writer sends the 9-column metadata first and then serializes each row as-is, so MySQL clients see an inconsistent result packet and report ERROR 2027 (HY000): Malformed packet. This change pads the detailed Quota and Left rows with the missing LocalBinlogSize column and adds unit coverage to assert detailed SHOW DATA rows match metadata width. Fix SHOW DATA ALL malformed packet caused by inconsistent result row width. - Test: Unit Test - ./run-fe-ut.sh --run org.apache.doris.nereids.trees.plans.commands.ShowDataCommandTest - ./run-regression-test.sh --run show_p0/test_show_data_all_db.groovy - Behavior changed: Yes (SHOW DATA ALL now returns valid result packets instead of malformed packets) - Does this need documentation: No
de20a68 to
7e142e1
Compare
|
run buildall |
TPC-H: Total hot run time: 29543 ms |
TPC-DS: Total hot run time: 174074 ms |
ClickBench: Total hot run time: 25.24 s |
FE Regression Coverage ReportIncrement line coverage |
2 similar comments
FE Regression Coverage ReportIncrement line coverage |
FE Regression Coverage ReportIncrement line coverage |
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
|
/review |
1 similar comment
|
/review |
There was a problem hiding this comment.
Review result: requested changes.
Critical checkpoint conclusions:
- Goal/test: the production change fixes the detailed single-database
SHOW DATA ALLrow-width mismatch by padding theQuotaandLeftrows to the 9-column metadata shape. The new unit coverage checks metadata width against all detailed rows. - Scope: the code change is small and focused on result formatting; no unrelated production behavior changes were found.
- Concurrency/lifecycle/config/compatibility/persistence/data writes: no new concurrency, lifecycle, config, persistent format, FE-BE protocol, or data-write path changes were introduced.
- Parallel paths: checked detailed database output, table/index output, all-database output, and warehouse-property output. The table/index and all-database paths already produce rows matching their metadata; the changed detailed database summary rows were the missing path.
- Tests/results: the regression exercises
SHOW DATA ALLand checks row width, but one test-style issue remains in the added Groovy test. I did not run FE or regression tests becausethirdparty/installed/bin/protocis missing in this checkout; scopedgit diff --checkpassed. - Observability/performance: no material observability or performance concern for this formatting fix.
Subagent conclusions:
optimizer-rewritereported no candidates and returnedNO_NEW_VALUABLE_FINDINGSin convergence round 1.tests-session-configproposed TSC-1, accepted as MAIN-1 and submitted inline below; it returnedNO_NEW_VALUABLE_FINDINGSin convergence round 1.- Duplicate suppression: no existing inline review comments or replies were present, and the live PR comments API also returned none.
User focus: no additional user-provided review focus was supplied.
|
|
||
| suite("test_show_data_all_db") { | ||
| def dbName = "test_show_data_all_db"; | ||
| def tableName = "test_show_data_all_tb"; |
There was a problem hiding this comment.
This new regression is an ordinary single-table case, but it defines def tableName and interpolates it through the DROP/CREATE/INSERT statements. The repo testing standard in AGENTS.md asks these simple table names to be hardcoded in the SQL instead, so please replace the variable with the literal test_show_data_all_tb.
What problem does this PR solve?
Issue Number: close #xxx
Related PR: #62058
Problem Summary:
SHOW DATA ALLreturns detailed database data with 9 metadata columns afterLocalBinlogSizewas added, but theQuotaandLeftsummary rows still contained only 8 values. The FE MySQL protocol writer sends the 9-column metadata first and then serializes each row as-is, so MySQL clients see an inconsistent result packet and reportERROR 2027 (HY000): Malformed packet. This change pads the detailedQuotaandLeftrows with the missingLocalBinlogSizecolumn and adds unit coverage to assert detailedSHOW DATArows match metadata width.For examples:
Fix:
Add an empty column for
QuotaandLeft rowto align with the other rows.Release note
Fix
SHOW DATA ALLmalformed packet caused by inconsistent result row width.Check List (For Author)
Regression test:
./run-regression-test.sh --run -d show_p0 -s test_show_data_all_dbUnit Test:
./run-fe-ut.sh --run org.apache.doris.nereids.trees.plans.commands.ShowDataCommandTestBehavior changed:
Does this need documentation?
Check List (For Reviewer who merge this PR)